package cn.monkey.transport.mq.rabbitmq;

import cn.monkey.transport.core.ExchangeFactory;

public abstract class AbstractRabbitMqExchangeFactory<EXCHANGE extends RabbitMqExchange> implements ExchangeFactory<RabbitMqTransportConfig, EXCHANGE> {

    protected abstract RabbitMqInbound newInbound(RabbitMqTransportConfig.Inbound inbound);

    protected abstract EXCHANGE inverse(EXCHANGE exchange);

    protected abstract RabbitMqOutbound newOutbound(RabbitMqTransportConfig.Outbound outbound);
}
